﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using BusinessLayer.BO;
using BusinessLayer.Interface;
using EntityLayer;
namespace BusinessLayer.Facade
{
    public class clsFacadeActualizarLegajoJudicial : clsIFacadeActualizarLegajoJudicial
    {
        //FACADE para Insertar, Modificar, Eliminar de la Tabla Prelegajo
        public bool ActualizarLegajo(T_Legajo obj, string Opcion)
        {
            try
            {
                if (Validaciones(obj))
                {
                    if (Opcion == "I")
                    {
                        return new clsT_LegajoBO().Insertar(obj);
                    }
                    else if (Opcion == "M")
                    {
                        return new clsT_LegajoBO().Modificar(obj);
                    }
                    else if (Opcion == "E")
                    { }
                    return new clsT_LegajoBO().Eliminar(obj);
                }
                else
                {
                    return false;
                }
            }
            catch (Exception)
            {
                return false;
                throw;
            }
        }

        bool Validaciones(T_Legajo obj)
        {
            return true;
        }

        public List<V_legajos_L> listarLegajos()
        {
            return new clsT_LegajoBO().listarLegajos();
        }

        public List<V_legajos_obtener_Codigos> V_legajos_obtener_Codigos(string CO_legajo)
        {
            return new clsT_LegajoBO().V_legajos_obtener_Codigos(CO_legajo);
        }

        public List<V_legajos_obtener_Nombres> V_legajos_obtener_Nombres(string CO_legajo)
        {
            return new clsT_LegajoBO().V_legajos_obtener_Nombres(CO_legajo);
        }

        //FACADE para Listar la Tabla Prelegajo por NUMERO DE RESOLUCION
        public List<T_Legajo> listarLegajoCO_legajo(string CO_legajo)
        {
            try
            {
                return new clsT_LegajoBO().listarLegajoCO_legajo(CO_legajo);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla Prelegajo
        public List<sp_Genera_nrodeLegajo> listar_genera_nrodeLegajo()
        {
            try
            {
                return new clsT_LegajoBO().listar_genera_nrodeLegajo();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        #region MyRegion
        //FACADE para Listar la Tabla PROCESOS
        public List<T_Proceso> listarProceso()
        {
            try
            {
                return new clsT_ProcesoBO().listarProceso();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla PROVINCIA por Codigo de DEPARTAMENTO
        public List<T_TipoProceso> listarTipoProceso_por_Proceso(string CO_proceso)
        {
            try
            {
                return new clsT_TipoProcesoBO().listarTipoProceso_por_Proceso(CO_proceso);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla DISTRITO JUDICIAL
        public List<T_Dist_Judicial> listarDistritoJudicial()
        {
            try
            {
                return new clsT_Dist_JudicialBO().listarDistritoJudicial();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla DEPARTAMENTO
        public List<T_Departamento> listarDepartamento()
        {
            try
            {
                return new clsT_DepartamentoBO().listarDepartamento();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla PROVINCIA por Codigo de DEPARTAMENTO
        public List<T_Provincia> listarProvincia_por_Depart(string CO_departamento)
        {
            try
            {
                return new clsT_ProvinciaBO().listarProvincia_por_Depart(CO_departamento);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla DISTRITO por Codigo de PROVINCIA
        public List<T_Distrito> listarDistrito_por_Provincia(string CO_provincia)
        {
            try
            {
                return new clsT_DistritoBO().listarDistrito_por_Provincia(CO_provincia);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla CARGOS
        public List<T_Cargos> listarCargos()
        {
            try
            {
                return new clsT_CargosBO().listarCargos();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla ESTADO
        public List<T_Estado> listarEstado_tabla_1()
        {
            try
            {
                return new clsT_EstadoBO().listarEstado_tabla_1();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla ETAPAS
        public List<T_Etapas> listarEtapas()
        {
            try
            {
                return new clsT_EtapasBO().listarEtapas();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla SITUCAIONES por Codigo de ETAPA
        public List<T_Situaciones> listarSituaciones_por_Etapa(string CO_etapas)
        {
            try
            {
                return new clsT_SituacionesBO().listarSituaciones_por_Etapa(CO_etapas);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla MONEDA
        public List<T_Monedas> listarMoneda()
        {
            try
            {
                return new clsT_MonedasBO().listarMoneda();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla MONEDA
        public List<T_Tipo_Documento> listarTipoDocumento()
        {
            try
            {
                return new clsT_Tipo_DocumentoBO().listarTipoDocumento();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }
        
        //FACADE para Listar la Tabla Prelegajo
        public List<T_Prelegajo> listarPreLegajo()
        {
            try
            {
                return new clsT_PrelegajoBO().listarPreLegajo();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla Prelegajo por NUMERO DE RESOLUCION
        public List<T_Prelegajo> listarLegajoNU_Resol(string NU_resolucion)
        {
            try
            {
                return new clsT_PrelegajoBO().listarLegajoNU_Resol(NU_resolucion);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }
        #endregion

    }
}
